\select@language {ngerman}
\contentsline {chapter}{\numberline {1}Einleitung}{1}{chapter.1}
\contentsline {chapter}{\numberline {2}Definitionen}{2}{chapter.2}
\contentsline {part}{\numberline {I}Projektbeschreibung}{3}{part.1}
\contentsline {chapter}{\numberline {3}Aufgabenstellung}{4}{chapter.3}
\contentsline {section}{\numberline {3.1}Ausgangslage}{4}{section.3.1}
\contentsline {section}{\numberline {3.2}Ziele der Arbeit}{4}{section.3.2}
\contentsline {section}{\numberline {3.3}Aufgabenstellung}{5}{section.3.3}
\contentsline {section}{\numberline {3.4}Erwartete Resultate}{5}{section.3.4}
\contentsline {section}{\numberline {3.5}Abgrenzung der Arbeit}{6}{section.3.5}
\contentsline {chapter}{\numberline {4}Analyse der Aufgabenstellung}{7}{chapter.4}
\contentsline {section}{\numberline {4.1}Erarbeitung der Grundlagen}{7}{section.4.1}
\contentsline {section}{\numberline {4.2}Vorgehen bei der Anforderungsanalyse}{8}{section.4.2}
\contentsline {section}{\numberline {4.3}Konzept und Implementierung}{8}{section.4.3}
\contentsline {section}{\numberline {4.4}Review und Bewertung}{8}{section.4.4}
\contentsline {chapter}{\numberline {5}Projektplanung}{9}{chapter.5}
\contentsline {section}{\numberline {5.1}Meilensteine und grober Zeitplan}{9}{section.5.1}
\contentsline {section}{\numberline {5.2}Aufwandssch\IeC {\"a}tzung}{10}{section.5.2}
\contentsline {part}{\numberline {II}Grundlagen}{11}{part.2}
\contentsline {chapter}{\numberline {6}Browsermarkt}{12}{chapter.6}
\contentsline {section}{\numberline {6.1}Entwicklung}{12}{section.6.1}
\contentsline {subsection}{\numberline {6.1.1}Historischer Ursprung}{12}{subsection.6.1.1}
\contentsline {subsection}{\numberline {6.1.2}Der erste Browserkrieg}{12}{subsection.6.1.2}
\contentsline {subsection}{\numberline {6.1.3}Der zweite Browserkrieg}{13}{subsection.6.1.3}
\contentsline {section}{\numberline {6.2}Marktanalyse und Marktanteile}{14}{section.6.2}
\contentsline {subsection}{\numberline {6.2.1}Evaluation der Datenbasis}{14}{subsection.6.2.1}
\contentsline {subsection}{\numberline {6.2.2}Entscheid}{15}{subsection.6.2.2}
\contentsline {subsection}{\numberline {6.2.3}Globale Marktanteile}{16}{subsection.6.2.3}
\contentsline {subsection}{\numberline {6.2.4}Schweizer Marktanteile}{17}{subsection.6.2.4}
\contentsline {subsection}{\numberline {6.2.5}Globale Marktanteile einzelner Browser Versionen}{18}{subsection.6.2.5}
\contentsline {subsection}{\numberline {6.2.6}Trends und Prognosen}{22}{subsection.6.2.6}
\contentsline {chapter}{\numberline {7}Erweiterungskonzept einzelner Browser}{24}{chapter.7}
\contentsline {section}{\numberline {7.1}Internet Explorer}{24}{section.7.1}
\contentsline {subsection}{\numberline {7.1.1}Architektur}{24}{subsection.7.1.1}
\contentsline {subsection}{\numberline {7.1.2}Erweiterungsm\IeC {\"o}glichkeiten}{26}{subsection.7.1.2}
\contentsline {subsection}{\numberline {7.1.3}Browser Extensions}{26}{subsection.7.1.3}
\contentsline {subsection}{\numberline {7.1.4}Vor- und Nachteile}{27}{subsection.7.1.4}
\contentsline {section}{\numberline {7.2}Google Chrome}{27}{section.7.2}
\contentsline {subsection}{\numberline {7.2.1}Architektur}{28}{subsection.7.2.1}
\contentsline {subsection}{\numberline {7.2.2}Erweiterungsm\IeC {\"o}glichkeiten}{28}{subsection.7.2.2}
\contentsline {subsection}{\numberline {7.2.3}Vor- und Nachteile}{29}{subsection.7.2.3}
\contentsline {section}{\numberline {7.3}Mozilla Firefox}{30}{section.7.3}
\contentsline {subsection}{\numberline {7.3.1}Architektur}{30}{subsection.7.3.1}
\contentsline {subsection}{\numberline {7.3.2}Erweiterungsm\IeC {\"o}glichkeiten}{31}{subsection.7.3.2}
\contentsline {subsubsection}{Traditionelle Erweiterungen}{31}{section*.5}
\contentsline {subsubsection}{Add-on SDK Erweiterungen}{31}{section*.6}
\contentsline {subsection}{\numberline {7.3.3}Vor- und Nachteile}{32}{subsection.7.3.3}
\contentsline {section}{\numberline {7.4}Safari}{33}{section.7.4}
\contentsline {subsection}{\numberline {7.4.1}Architektur}{33}{subsection.7.4.1}
\contentsline {subsection}{\numberline {7.4.2}Erweiterungsm\IeC {\"o}glichkeiten}{34}{subsection.7.4.2}
\contentsline {subsection}{\numberline {7.4.3}Vor- und Nachteile}{35}{subsection.7.4.3}
\contentsline {section}{\numberline {7.5}Opera}{36}{section.7.5}
\contentsline {subsection}{\numberline {7.5.1}Architektur}{36}{subsection.7.5.1}
\contentsline {subsection}{\numberline {7.5.2}Erweiterungsm\IeC {\"o}glichkeiten}{36}{subsection.7.5.2}
\contentsline {subsection}{\numberline {7.5.3}Vor- und Nachteile}{38}{subsection.7.5.3}
\contentsline {part}{\numberline {III}Anforderungsanalyse}{39}{part.3}
\contentsline {chapter}{\numberline {8}Einleitung}{41}{chapter.8}
\contentsline {section}{\numberline {8.1}Zweck}{41}{section.8.1}
\contentsline {section}{\numberline {8.2}Namensgebung}{41}{section.8.2}
\contentsline {section}{\numberline {8.3}Stakeholder}{41}{section.8.3}
\contentsline {section}{\numberline {8.4}\IeC {\"U}bersicht}{42}{section.8.4}
\contentsline {chapter}{\numberline {9}Allgemeine \IeC {\"U}bersicht}{43}{chapter.9}
\contentsline {section}{\numberline {9.1}Systemumfeld}{43}{section.9.1}
\contentsline {subsubsection}{System}{43}{section*.7}
\contentsline {subsubsection}{Systemkontext}{44}{section*.8}
\contentsline {subsubsection}{Irrelevante Umgebung}{44}{section*.9}
\contentsline {section}{\numberline {9.2}Architekturbeschreibung}{44}{section.9.2}
\contentsline {section}{\numberline {9.3}Systemfunktionalit\IeC {\"a}t}{45}{section.9.3}
\contentsline {subsection}{\numberline {9.3.1}Use Case Diagramm}{45}{subsection.9.3.1}
\contentsline {subsection}{\numberline {9.3.2}Use Cases}{46}{subsection.9.3.2}
\contentsline {section}{\numberline {9.4}Nutzer und Zielgruppen}{55}{section.9.4}
\contentsline {subsubsection}{Nutzer}{55}{section*.10}
\contentsline {subsubsection}{XCommand Entwickler}{55}{section*.11}
\contentsline {section}{\numberline {9.5}Randbedingungen}{55}{section.9.5}
\contentsline {chapter}{\numberline {10}Anforderungen}{56}{chapter.10}
\contentsline {section}{\numberline {10.1}Funktionale Anforderungen}{56}{section.10.1}
\contentsline {subsection}{\numberline {10.1.1}Allgemein}{56}{subsection.10.1.1}
\contentsline {subsection}{\numberline {10.1.2}XCommander Library}{58}{subsection.10.1.2}
\contentsline {subsection}{\numberline {10.1.3}XCommander Erweiterung}{59}{subsection.10.1.3}
\contentsline {section}{\numberline {10.2}Qualit\IeC {\"a}tsanforderungen}{63}{section.10.2}
\contentsline {part}{\numberline {IV}Konzept}{66}{part.4}
\contentsline {chapter}{\numberline {11}Evaluation der Prototyp Browser}{68}{chapter.11}
\contentsline {section}{\numberline {11.1}Evaluationsmethode}{68}{section.11.1}
\contentsline {section}{\numberline {11.2}Randbedingungen}{68}{section.11.2}
\contentsline {section}{\numberline {11.3}Evaluation}{69}{section.11.3}
\contentsline {subsection}{\numberline {11.3.1}Bewertungskriterien}{69}{subsection.11.3.1}
\contentsline {subsection}{\numberline {11.3.2}Gewichtung}{69}{subsection.11.3.2}
\contentsline {subsection}{\numberline {11.3.3}Erf\IeC {\"u}llungsgrad}{70}{subsection.11.3.3}
\contentsline {subsection}{\numberline {11.3.4}Bewertung}{70}{subsection.11.3.4}
\contentsline {subsection}{\numberline {11.3.5}Nutzwertanalyse}{71}{subsection.11.3.5}
\contentsline {subsection}{\numberline {11.3.6}Beurteilung}{72}{subsection.11.3.6}
\contentsline {subsection}{\numberline {11.3.7}Entscheid}{72}{subsection.11.3.7}
\contentsline {chapter}{\numberline {12}Architektur}{73}{chapter.12}
\contentsline {section}{\numberline {12.1}Allgemeines}{73}{section.12.1}
\contentsline {subsection}{\numberline {12.1.1}Ausgangslage}{73}{subsection.12.1.1}
\contentsline {subsection}{\numberline {12.1.2}Technologien}{73}{subsection.12.1.2}
\contentsline {section}{\numberline {12.2}Begrifflichkeiten}{74}{section.12.2}
\contentsline {section}{\numberline {12.3}Erweiterungskonzept}{74}{section.12.3}
\contentsline {section}{\numberline {12.4}Abstraktion}{75}{section.12.4}
\contentsline {chapter}{\numberline {13}Struktursicht}{78}{chapter.13}
\contentsline {section}{\numberline {13.1}Komponenten\IeC {\"u}bersicht}{78}{section.13.1}
\contentsline {subsection}{\numberline {13.1.1}Komponenten}{78}{subsection.13.1.1}
\contentsline {subsubsection}{Browser-Komponenten}{79}{section*.12}
\contentsline {subsubsection}{Komponenten im Extension Process}{79}{section*.13}
\contentsline {subsubsection}{Komponenten im Content Process}{79}{section*.14}
\contentsline {subsection}{\numberline {13.1.2}Schnittstellen}{79}{subsection.13.1.2}
\contentsline {section}{\numberline {13.2}XCommander Library}{81}{section.13.2}
\contentsline {subsection}{\numberline {13.2.1}Extension Process}{81}{subsection.13.2.1}
\contentsline {subsubsection}{XCommanderEventListener}{82}{section*.15}
\contentsline {subsubsection}{XCommanderMessageServer}{82}{section*.16}
\contentsline {subsubsection}{XCommanderStorage}{82}{section*.17}
\contentsline {subsubsection}{XCommanderXHR}{83}{section*.18}
\contentsline {subsubsection}{XCommanderBrowser}{83}{section*.19}
\contentsline {subsubsection}{XCommander}{84}{section*.20}
\contentsline {subsection}{\numberline {13.2.2}Content Process}{85}{subsection.13.2.2}
\contentsline {section}{\numberline {13.3}XCommander Erweiterung}{86}{section.13.3}
\contentsline {subsection}{\numberline {13.3.1}Grafische Benutzeroberfl\IeC {\"a}che}{86}{subsection.13.3.1}
\contentsline {subsubsection}{\gls {front_end}}{86}{section*.21}
\contentsline {subsubsection}{\gls {back_end}}{86}{section*.22}
\contentsline {subsection}{\numberline {13.3.2}Das XCommand}{86}{subsection.13.3.2}
\contentsline {chapter}{\numberline {14}Funktionssicht}{90}{chapter.14}
\contentsline {section}{\numberline {14.1}Allgemein}{90}{section.14.1}
\contentsline {subsection}{\numberline {14.1.1}XCommander installieren}{90}{subsection.14.1.1}
\contentsline {subsection}{\numberline {14.1.2}XCommander updaten}{90}{subsection.14.1.2}
\contentsline {subsection}{\numberline {14.1.3}XCommand debuggen}{91}{subsection.14.1.3}
\contentsline {section}{\numberline {14.2}XCommander Library}{91}{section.14.2}
\contentsline {subsection}{\numberline {14.2.1}XCommander Messaging}{91}{subsection.14.2.1}
\contentsline {subsection}{\numberline {14.2.2}XCommander XmlHttpRequest}{92}{subsection.14.2.2}
\contentsline {subsection}{\numberline {14.2.3}XCommander Local Storage}{93}{subsection.14.2.3}
\contentsline {section}{\numberline {14.3}XCommander Erweiterung}{95}{section.14.3}
\contentsline {subsection}{\numberline {14.3.1}XCommander verwalten}{95}{subsection.14.3.1}
\contentsline {subsection}{\numberline {14.3.2}XCommand installieren}{95}{subsection.14.3.2}
\contentsline {subsubsection}{Installation vom lokalen Filesystem}{96}{section*.23}
\contentsline {subsubsection}{Installation von einer Webseite}{96}{section*.24}
\contentsline {subsection}{\numberline {14.3.3}XCommand deinstallieren}{97}{subsection.14.3.3}
\contentsline {subsection}{\numberline {14.3.4}XCommand de- bzw. reaktivieren}{97}{subsection.14.3.4}
\contentsline {subsection}{\numberline {14.3.5}XCommand updaten}{97}{subsection.14.3.5}
\contentsline {subsection}{\numberline {14.3.6}XCommand ausf\IeC {\"u}hren}{98}{subsection.14.3.6}
\contentsline {subsubsection}{Grammatik der pseudo-nat\IeC {\"u}rlichen Sprache}{98}{section*.25}
\contentsline {subsubsection}{Semantische Rollen}{99}{section*.26}
\contentsline {subsubsection}{Noun Types}{100}{section*.27}
\contentsline {subsubsection}{\gls {parser}}{100}{section*.28}
\contentsline {chapter}{\numberline {15}Visual Design}{101}{chapter.15}
\contentsline {section}{\numberline {15.1}Front-End}{101}{section.15.1}
\contentsline {subsection}{\numberline {15.1.1}Kommandozeilen Fenster}{101}{subsection.15.1.1}
\contentsline {subsection}{\numberline {15.1.2}Infobar}{102}{subsection.15.1.2}
\contentsline {subsection}{\numberline {15.1.3}Best\IeC {\"a}tigungsdialog"=Fenster}{103}{subsection.15.1.3}
\contentsline {section}{\numberline {15.2}Back-End}{104}{section.15.2}
\contentsline {subsection}{\numberline {15.2.1}Einstellungsseite}{104}{subsection.15.2.1}
\contentsline {chapter}{\numberline {16}Entwicklungsprozess}{105}{chapter.16}
\contentsline {section}{\numberline {16.1}Build-Automatisierung}{105}{section.16.1}
\contentsline {section}{\numberline {16.2}Versionsverwaltung}{105}{section.16.2}
\contentsline {chapter}{\numberline {17}Alternative L\IeC {\"o}sungen}{106}{chapter.17}
\contentsline {section}{\numberline {17.1}Front-End}{106}{section.17.1}
\contentsline {subsubsection}{Vorteile}{106}{section*.29}
\contentsline {subsubsection}{Nachteil}{106}{section*.30}
\contentsline {subsubsection}{Beurteilung}{107}{section*.31}
\contentsline {section}{\numberline {17.2}Parser}{107}{section.17.2}
\contentsline {part}{\numberline {V}Proof of Concept}{108}{part.5}
\contentsline {chapter}{\numberline {18}Implementation}{110}{chapter.18}
\contentsline {section}{\numberline {18.1}Funktionale Anforderungen}{110}{section.18.1}
\contentsline {subsection}{\numberline {18.1.1}Browserspezifische Funktionen}{110}{subsection.18.1.1}
\contentsline {subsubsection}{XCommander installieren (\hyperref [frq:xcommander_installieren]{\ref {frq:xcommander_installieren}})}{110}{section*.32}
\contentsline {subsubsection}{XCommander updaten (\hyperref [frq:xcommander_updaten]{\ref {frq:xcommander_updaten}})}{110}{section*.33}
\contentsline {subsubsection}{XCommander debuggen (\hyperref [frq:xcommand_debug]{\ref {frq:xcommand_debug}})}{110}{section*.34}
\contentsline {subsection}{\numberline {18.1.2}XCommander Library}{111}{subsection.18.1.2}
\contentsline {subsubsection}{XCommander Messaging (\hyperref [frq:xcommander_messaging]{\ref {frq:xcommander_messaging}})}{111}{section*.35}
\contentsline {subsubsection}{XCommander XmlHttpRequest (\hyperref [frq:xcommander_xhr]{\ref {frq:xcommander_xhr}})}{111}{section*.36}
\contentsline {subsubsection}{XCommander Local Storage (\hyperref [frq:xcommander_local_storage]{\ref {frq:xcommander_local_storage}})}{111}{section*.37}
\contentsline {subsection}{\numberline {18.1.3}XCommander Erweiterung}{112}{subsection.18.1.3}
\contentsline {subsubsection}{XCommander verwalten (\hyperref [frq:xcommander_verwalten]{\ref {frq:xcommander_verwalten}})}{112}{section*.38}
\contentsline {subsubsection}{XCommand installieren (\hyperref [frq:xcommand_installieren]{\ref {frq:xcommand_installieren}})}{113}{section*.39}
\contentsline {subsubsection}{XCommand deinstallieren (\hyperref [frq:xcommand_deinstallieren]{\ref {frq:xcommand_deinstallieren}})}{113}{section*.40}
\contentsline {subsubsection}{XCommand de- bzw. reaktivieren (\hyperref [frq:xcommand_deactivate]{\ref {frq:xcommand_deactivate}})}{113}{section*.41}
\contentsline {subsubsection}{XCommand updaten (\hyperref [frq:xcommand_updaten]{\ref {frq:xcommand_updaten}})}{113}{section*.42}
\contentsline {subsubsection}{XCommand ausf\IeC {\"u}hren (\hyperref [frq:xcommand_run]{\ref {frq:xcommand_run}})}{114}{section*.43}
\contentsline {section}{\numberline {18.2}Qualit\IeC {\"a}tsanforderungen}{114}{section.18.2}
\contentsline {subsection}{\numberline {18.2.1}Browserunabh\IeC {\"a}ngigkeit}{114}{subsection.18.2.1}
\contentsline {subsection}{\numberline {18.2.2}Erweiterbarkeit}{115}{subsection.18.2.2}
\contentsline {subsection}{\numberline {18.2.3}Usability}{115}{subsection.18.2.3}
\contentsline {subsection}{\numberline {18.2.4}Sicherheit}{115}{subsection.18.2.4}
\contentsline {subsection}{\numberline {18.2.5}Internationalisierung}{115}{subsection.18.2.5}
\contentsline {subsection}{\numberline {18.2.6}Modularisierung}{116}{subsection.18.2.6}
\contentsline {chapter}{\numberline {19}Testing}{117}{chapter.19}
\contentsline {section}{\numberline {19.1}Abgrenzung}{117}{section.19.1}
\contentsline {section}{\numberline {19.2}Methoden}{117}{section.19.2}
\contentsline {section}{\numberline {19.3}Browser}{117}{section.19.3}
\contentsline {section}{\numberline {19.4}Akzeptanztest}{118}{section.19.4}
\contentsline {subsection}{\numberline {19.4.1}Funktionale Anforderungen}{118}{subsection.19.4.1}
\contentsline {subsection}{\numberline {19.4.2}Qualit\IeC {\"a}tsanforderungen}{119}{subsection.19.4.2}
\contentsline {chapter}{\numberline {20}Review}{120}{chapter.20}
\contentsline {section}{\numberline {20.1}Was die Erweiterung leistet}{120}{section.20.1}
\contentsline {section}{\numberline {20.2}Was die Erweiterung nicht leistet}{120}{section.20.2}
\contentsline {section}{\numberline {20.3}Ausblick}{121}{section.20.3}
\contentsline {subsection}{\numberline {20.3.1}Parser}{121}{subsection.20.3.1}
\contentsline {subsection}{\numberline {20.3.2}Performance}{121}{subsection.20.3.2}
\contentsline {subsection}{\numberline {20.3.3}Weitere Browser}{121}{subsection.20.3.3}
\contentsline {section}{\numberline {20.4}Projekterfolg}{121}{section.20.4}
\contentsline {subsubsection}{Erwartete Resultate (Vgl.\ {\autoref {sec:erwartete_resultate}})}{122}{section*.44}
\contentsline {part}{Anhang}{123}{Item.78}
\contentsline {chapter}{Literaturverzeichnis}{124}{appendix*.46}
\contentsline {chapter}{Glossar}{127}{section*.47}
\contentsline {chapter}{Abk\IeC {\"u}rzungsverzeichnis}{129}{section*.49}
\contentsline {chapter}{Abbildungsverzeichnis}{131}{appendix*.50}
\contentsline {chapter}{Tabellenverzeichnis}{133}{appendix*.50}
\contentsline {chapter}{Verzeichnis der Listings}{135}{appendix*.51}
\contentsline {chapter}{\numberline {A}XCommander Bedienungsanleitung}{136}{appendix.A}
\contentsline {section}{\numberline {A.1}Installation}{136}{section.A.1}
\contentsline {subsection}{\numberline {A.1.1}Installation im Google Chrome Browser}{136}{subsection.A.1.1}
\contentsline {subsection}{\numberline {A.1.2}Installation im Safari Browser}{138}{subsection.A.1.2}
\contentsline {subsection}{\numberline {A.1.3}Installation im Opera Browser}{139}{subsection.A.1.3}
\contentsline {section}{\numberline {A.2}Einstellungsseite}{141}{section.A.2}
\contentsline {subsection}{\numberline {A.2.1}\IeC {\"O}ffnen der Einstellungsseite}{141}{subsection.A.2.1}
\contentsline {subsection}{\numberline {A.2.2}Parser Einstellungen}{142}{subsection.A.2.2}
\contentsline {section}{\numberline {A.3}XCommands verwalten}{142}{section.A.3}
\contentsline {subsection}{\numberline {A.3.1}Installieren}{142}{subsection.A.3.1}
\contentsline {subsubsection}{Installation vom lokalen Filesystem}{142}{section*.52}
\contentsline {subsubsection}{Installation von einer Webseite}{142}{section*.53}
\contentsline {subsection}{\numberline {A.3.2}Deinstallieren}{144}{subsection.A.3.2}
\contentsline {subsection}{\numberline {A.3.3}Updaten}{144}{subsection.A.3.3}
\contentsline {subsection}{\numberline {A.3.4}De- bzw. Reaktivieren}{144}{subsection.A.3.4}
\contentsline {section}{\numberline {A.4}Kommandozeilen"=Fenster}{145}{section.A.4}
\contentsline {chapter}{\numberline {B}XCommands}{147}{appendix.B}
\contentsline {section}{\numberline {B.1}Built-In XCommands}{147}{section.B.1}
\contentsline {subsection}{\numberline {B.1.1}help}{147}{subsection.B.1.1}
\contentsline {subsection}{\numberline {B.1.2}options}{147}{subsection.B.1.2}
\contentsline {subsection}{\numberline {B.1.3}get item}{147}{subsection.B.1.3}
\contentsline {subsection}{\numberline {B.1.4}set item}{148}{subsection.B.1.4}
\contentsline {section}{\numberline {B.2}Demo XCommands}{148}{section.B.2}
\contentsline {subsection}{\numberline {B.2.1}sbb}{148}{subsection.B.2.1}
\contentsline {subsection}{\numberline {B.2.2}flickr}{148}{subsection.B.2.2}
\contentsline {subsection}{\numberline {B.2.3}leo}{148}{subsection.B.2.3}
\contentsline {chapter}{\numberline {C}Beispiel: Struktur eines XCommands}{149}{appendix.C}
\contentsline {chapter}{\numberline {D}Beispiel: Semantische Rollen und Noun Types}{150}{appendix.D}
\contentsline {chapter}{\numberline {E}Informationen}{151}{appendix.E}
\contentsline {section}{\numberline {E.1}Datentr\IeC {\"a}ger}{151}{section.E.1}
\contentsline {section}{\numberline {E.2}Repository}{151}{section.E.2}
